-- 判断当前数量是否达到最大数量限制
-- 推送一条数据
-- 当前数据数量计数+1
-- KEYS[1] 队列的名称
-- KEYS[2] 队列配置的名称
-- KEYS[3] 最大数量字段名称
-- KEYS[4] 当前数量字段名称
-- ARGV[1] 要推送的数据
if redis.call('HGET', KEYS[2], KEYS[4]) >= redis.call('HGET', KEYS[2], KEYS[3]) then
    -- 超过最大数量限制
    return -1
else
    -- 计数更新
    redis.call('HINCRBY', KEYS[2], KEYS[4], 1)
    -- 推送数据
    return redis.call('LPUSHX', KEYS[1], ARGV[1])
end